///////////////////////////////
// Analizador léxico GDL
///////////////////////////////

lexer grammar AnalexGDL;

options {
  language = Java;
}

@header {
  package practpl.seis;
}

@members {
     private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
     public ArrayList<RecognitionException> getErrors() {
        return errors;
     }
     @Override
     public void reportError (RecognitionException e) {
        String msg = getErrorMessage(e, getTokenNames());
        System.err.println(msg);
        errors.add(e);
     }
}

fragment LETRA: ('a'..'z')|('A'..'Z');

BLANCO : (' '|'\t'|'\r\n') {skip();};

GRAPH : 'graph';
NODE: 'node';
EDGE: 'edge';
TITLE: 'title';
LABEL: 'label';
TARGET: 'target';
SOURCE: 'source';
ARROWSTYLE: 'arrowstyle';
BORDERSTYLE: 'borderstyle';
SOLID: 'solid';
DASHED: 'dashed';
DOTTED: 'dotted';
LINE:'line';
NONE: 'none';

COMILLAS: '"';
COLON: ':';

DATO: COMILLAS (~('"'))* COMILLAS;

LLAVEA : '{';
LLAVEC: '}';

COMENTARIO: '//' (~('\r'))* {skip();};
